//Polyfill Node.js core modules in Webpack. This module is only needed for webpack 5+.
const NodePolyfillPlugin = require("node-polyfill-webpack-plugin");

/**
 * Custom angular webpack configuration
 */
module.exports = (config, options) => {
    /**
     * target指定目标环境,比如在electron环境中,require('electron')返回运行时原生模块,而不需要webpack打包npm下的electron模块,因此需要指定该目标为electron-renderer.
     * 因目前最新版本渲染进程和主进程通信使用IPC，不需要在渲染进程中引入require('electron')，此处反而不需要了。
     * 也就是说渲染进程和主进程完全隔离，使用IPC通信进行安全的调用。
     */
    //config.target = 'electron-renderer'; 

    if (options.fileReplacements) {
        for(let fileReplacement of options.fileReplacements) {
            if (fileReplacement.replace !== 'src/environments/environment.ts') {
                continue;
            }

            let fileReplacementParts = fileReplacement['with'].split('.');
            if (fileReplacementParts.length > 1 && ['web'].indexOf(fileReplacementParts[1]) >= 0) {
                config.target = 'web';
            }
            break;
        }
    }

    config.plugins = [
        ...config.plugins,
        new NodePolyfillPlugin({
			  excludeAliases: ["console"]
		})
    ];

    return config;
}
